package futbolfacil.negocio;

import java.util.Collection;

import futbolfacil.dao.AlquilerDAO;
import futbolfacil.dao.AlquilerDetalleDAO;
import futbolfacil.dao.CanchaDAO;
import futbolfacil.dao.ClienteDAO;
import futbolfacil.dao.MantenimientoDAO;
import futbolfacil.dao.ServicioAdicionalDAO;
import futbolfacil.dao.DuenoDAO;
import futbolfacil.dao.HorarioDAO;
import futbolfacil.dao.LocalDAO;
import futbolfacil.excepcion.DAOExcepcion;
import futbolfacil.modelo.AlquilerDetalle;
import futbolfacil.modelo.Cancha;
import futbolfacil.modelo.Cliente;
import futbolfacil.modelo.ServicioAdicional;
import futbolfacil.modelo.Alquiler;
import futbolfacil.modelo.Dueno;
import futbolfacil.modelo.Horario;
import futbolfacil.modelo.Local;


public class SeguridadNegocio {
	
	/* ----------------------------------------------------------------------
	 * Amed Ysmodes.
	 * Negocio Dueno. (no modificar nada de este bloque)
	 */	
	public void insertarDueno(Dueno vo) throws DAOExcepcion {
		
		DuenoDAO dao = new DuenoDAO();
		try {
			dao.insertar(vo);
		} catch (DAOExcepcion e) {
			//No inserto
			throw e;
		}
	}
	
	public void actualizarDueno(Dueno objDueno) throws DAOExcepcion {
		
		DuenoDAO dao = new DuenoDAO();
		try {
			dao.actualizar(objDueno);
		} catch (DAOExcepcion e) {
			throw e;
		}
	}
	
	public void eliminarDueno(int codigo) throws DAOExcepcion {
		
		DuenoDAO dao = new DuenoDAO();
		try {
			dao.eliminar(codigo);
		} catch (DAOExcepcion e) {
			throw e;
		}
	}
	
	public Collection<Dueno> buscarDuenoPorNombre(String nombre) throws DAOExcepcion{
		
		DuenoDAO dao = new DuenoDAO();
		return dao.buscarPorNombre(nombre);		
	}
	
	public Dueno obtenerDueno(String nombre) throws DAOExcepcion {
		
		DuenoDAO dao = new DuenoDAO();
		return dao.obtener(nombre);		
	}
		
	public Collection<Dueno> listarDuenos() throws DAOExcepcion {
		
		DuenoDAO dao = new DuenoDAO();
		return dao.listar();
	}
	
	public Dueno buscarDueno(String campo, String valor) throws DAOExcepcion {
		DuenoDAO dao = new DuenoDAO();
		return dao.buscar(campo, valor);
	}
	
	public Dueno buscarDuenoPorCodigo(int codigo) throws DAOExcepcion {
		
		DuenoDAO dao = new DuenoDAO();
		return dao.buscarPorCodigo(codigo);
	}
	
	
	public Dueno loginDueno(String usr, String pwd) throws DAOExcepcion {
		
		DuenoDAO dao = new DuenoDAO();
		return dao.login(usr, pwd);
	}

	
	/* ----------------------------------------------------------------------
	 * Amed Ysmodes.
	 * Negocio Cancha. (no modificar nada de este bloque)
	 */	
	public void insertarCancha(Cancha objCancha) throws DAOExcepcion {
		CanchaDAO dao = new CanchaDAO();
		
		try {
			dao.insertar(objCancha);
		} catch (DAOExcepcion e) {
			throw e;
		}
	}
		
	public Cancha buscarCanchaPorCodigo(int codigo) throws DAOExcepcion {
		CanchaDAO dao = new CanchaDAO();
		return dao.buscarPorCodigo(codigo);
	}
	
	public Collection<Cancha> listarCanchas() throws DAOExcepcion {
		CanchaDAO dao = new CanchaDAO();
		return dao.Listar();
	}
	
	public Collection<Cancha> listarCanchasPorLocal(int idLocal) throws DAOExcepcion {
		CanchaDAO dao = new CanchaDAO();
		return dao.ListarCanchaPorLocal(idLocal);
	}
	
	/* ----------------------------------------------------------------------
	 * Amed Ysmodes.
	 * Negocio Local. (no modificar nada de este bloque)
	 */	
	public Local buscarLocalPorCodigo(int codigo) throws DAOExcepcion {
		LocalDAO dao = new LocalDAO();
		return dao.buscarPorCodigo(codigo);
	}	
	
	/* ----------------------------------------------------------------------
	 * Amed Ysmodes.
	 * Negocio Horario. (no modificar nada de este bloque)
	 */	
	public void insertar(Horario objHorario) throws DAOExcepcion {
		HorarioDAO dao = new HorarioDAO();
		
		try {
			dao.insertar(objHorario);
		} catch (DAOExcepcion e) {
			throw e;
		}
		
	}
	
	public Collection<Horario> listarHorarios() throws DAOExcepcion {
		HorarioDAO dao = new HorarioDAO();
		return dao.listar();
	}
	
	/* ----------------------------------------------------------------------
	 */	
	
	
	
	/*
	 * Igmar Leon
	 */
	
	public Collection<Cancha> buscarCanchaporLocal(String distrito, String dia, String horIni, String horFin) throws DAOExcepcion {
		
		CanchaDAO dao = new CanchaDAO();
		return dao.buscarporLocal(distrito, dia, horIni, horFin);
		
	}
	
	public void InsertarLocal (Local oLocal) throws DAOExcepcion {
		
		LocalDAO dao = new LocalDAO();
		try {
			dao.Insertar(oLocal);
		} catch (DAOExcepcion e) {
			throw e;
		}
	}
	
	
	
/*	public void InsertarLocal (int usr_cod, String loc_des, String loc_dir, String loc_dis, String loc_goo_map, String loc_tlf) throws DAOExcepcion {
		
		Local modelo = new Local();
		modelo.setCodigoUsuario(usr_cod);
		modelo.setDescripcionLocal(loc_des);
		modelo.setDireccionLocal(loc_dir);
		modelo.setDistritoLocal(loc_dis);
		modelo.setGooMapLocal(loc_goo_map);
		modelo.setTelefonoLocal(loc_tlf);
		
		LocalDAO dao = new LocalDAO();
		dao.Insertar(modelo);
	}*/

	public void EliminarLocal (int cod_Local) throws DAOExcepcion {
		
		Local modelo = new Local();
		modelo.setCodigoLocal(cod_Local);
		
		LocalDAO dao = new LocalDAO();
		dao.Eliminar(cod_Local);
	}

	public void ModificarLocal (Local oLocal) throws DAOExcepcion {
	
		LocalDAO dao = new LocalDAO();
		try {
			dao.Modificar(oLocal);
		} catch (DAOExcepcion e) {
			throw e;
		}
	}
	
	public Collection<Local> ListarLocal() throws DAOExcepcion {
		
		LocalDAO dao = new LocalDAO();
		return dao.Listar();
	}
	
	public Local Buscar(String des_Local) throws DAOExcepcion {
		
		LocalDAO dao = new LocalDAO();
		return dao.Buscar(des_Local);	
	}

	/* ----------------------------------------------------------------------
	 * Felix Paragulla
	 * Negocio Servicio.
	 */
	
	public void insertarServicio (ServicioAdicional objServicio) throws DAOExcepcion {
		ServicioAdicionalDAO dao = new ServicioAdicionalDAO();
		
		try {
			dao.insertar(objServicio);
		} catch (DAOExcepcion e) {
			throw e;
		}
	}	
	
	public void insertarAlquiler (Alquiler objAlquiler) throws DAOExcepcion {
		AlquilerDAO dao = new AlquilerDAO();
		
		try {
			dao.insertar(objAlquiler);
		} catch (DAOExcepcion e) {
			throw e;
		}
	}	
	
	public void insertarAlquilerDet (AlquilerDetalle objAlquilerDet, int codigocab) throws DAOExcepcion {
		AlquilerDetalleDAO dao = new AlquilerDetalleDAO();
		
		try {
			dao.insertar(objAlquilerDet, codigocab);
		} catch (DAOExcepcion e) {
			throw e;
		}
	}	
	
	public Cliente buscarClientePorCodigo(int codigo) throws DAOExcepcion {
		
		ClienteDAO dao = new ClienteDAO();
		return dao.buscarPorCodigo(codigo);
		
		
	}
	
	
	public void ActualizarTotal (int codigoalq) throws DAOExcepcion {
		AlquilerDAO dao = new AlquilerDAO();
		
		try {
			dao.Alquilar(codigoalq);
		} catch (DAOExcepcion e) {
			throw e;
		}	
	}
	
	public int CodigoMax()  throws DAOExcepcion {
		AlquilerDAO dao = new AlquilerDAO();
		
		try {
			return dao.CodigoMaximo();
		} catch (DAOExcepcion e) {
			throw e;
		}	
	}

	/*
	 * ----------------------------------------------------------------------
	 */	
	
	public ServicioAdicional buscarServicioPorCodigo(int codigo) throws DAOExcepcion {
		ServicioAdicionalDAO dao = new ServicioAdicionalDAO();
		return dao.buscarPorCodigoServ(codigo);
	}
}
